package com.simulation.web.service;

import com.github.pagehelper.PageInfo;
import com.simulation.web.dto.TechCollectionDTO;
import com.simulation.web.domain.TechCollection;
import com.simulation.web.vo.TechCollectionVO;

import java.util.List;

/**
 * @Author 唐雄杰
 * @Date 2024-07-12 22:47
 **/
public interface CollectionService {

    PageInfo<TechCollectionVO> getPage(TechCollectionDTO techCollectionDTO);

    List<TechCollection> listAll();


    /**
     * 根据主键查询
     *
     * @param id 主键
     * @return 返回记录，没有返回null
     */
    TechCollectionVO getById(Long id);

    /**
     * 新增，插入所有字段
     *
     * @param techCollection 新增的记录
     * @return 返回影响行数
     */
    int insert(TechCollection techCollection);

    /**
     * 新增，忽略null字段
     *
     * @param techCollection 新增的记录
     * @return 返回影响行数
     */
    int insertIgnoreNull(TechCollection techCollection);

    /**
     * 修改，修改所有字段
     *
     * @param techCollection 修改的记录
     * @return 返回影响行数
     */
    int update(TechCollection techCollection);

    /**
     * 修改，忽略null字段
     *
     * @param techCollection 修改的记录
     * @return 返回影响行数
     */
    int updateIgnoreNull(TechCollection techCollection);

    /**
     * 删除记录
     *
     * @param id 待删除的记录
     * @return 返回影响行数
     */
    int delete(Long id);

    /**
     * 合集推荐
     * @return
     */
    List<TechCollectionVO> selectViewCount();

    /**
     * 复制合集
     * @param id
     * @return
     */
    Boolean copy(Long id);
}
